CouchDB-তে একটি ডকুমেন্ট পড়া বা ফেচ করা একটি মৌলিক অপারেশন, যা HTTP API ব্যবহার করে খুব সহজেই করা যায়। CouchDB-তে একটি ডকুমেন্ট _id (অনন্য চিহ্ন) এর মাধ্যমে অ্যাক্সেস করা হয় এবং এটি GET HTTP রিকুয়েস্টের মাধ্যমে রিড করা হয়। নিচে বিস্তারিতভাবে ডকুমেন্ট রিড/ফেচ করার পদ্ধতি এবং প্রক্রিয়া আলোচনা করা হলো।
CouchDB এর সাথে যোগাযোগ করার জন্য HTTP API ব্যবহার করা হয়। একটি ডকুমেন্ট পড়তে GET রিকুয়েস্ট পাঠানো হয়। এই রিকুয়েস্টে ডকুমেন্টের _id এবং _rev (যদি প্রয়োজন হয়) পাঠানো হয়।
ডকুমেন্ট রিড করার জন্য নিচের মতো একটি GET রিকুয়েস্ট পাঠানো হয়:
GET /db_name/document_id
এখানে:
curl -X GET http://127.0.0.1:5984/mydatabase/mydoc123
এখানে:
ডকুমেন্ট রিড করার পর, সার্ভার থেকে একটি JSON রেসপন্স আসবে, যা ডকুমেন্টের ডেটা এবং অতিরিক্ত তথ্য ধারণ করে। যেমন:
{
"_id": "mydoc123",
"_rev": "1-2345abcd6789efgh",
"name": "John Doe",
"email": "johndoe@example.com",
"age": 30
}
এখানে:
কিছু ক্ষেত্রে, আপনি View ব্যবহার করে ডকুমেন্ট ফিল্টার করতে পারেন, যাতে নির্দিষ্ট শর্তে ডেটা ফেচ করা যায়। যেমন:
GET /db_name/_design/myview/_view/myfilter?key="John Doe"
এখানে:
যখন একটি ডকুমেন্টের একাধিক সংস্করণ (revision) থাকে, তখন _rev ফিল্ডের মাধ্যমে নির্দিষ্ট সংস্করণটি রিড করা হয়। যদি কোন কনফ্লিক্ট ঘটে, তবে CouchDB _rev ফিল্ডের সাহায্যে সর্বশেষ সংস্করণ নির্বাচন করে।
আপনি _changes API এর মাধ্যমে include_docs=true সেট করে সংশ্লিষ্ট ডকুমেন্টগুলো ফেচ করতে পারেন:
GET /mydatabase/_changes?include_docs=true
এটি সমস্ত পরিবর্তিত ডকুমেন্টের সাথে তাদের ডেটাও ফিরিয়ে দেবে।
কিছু পরিস্থিতিতে, আপনি শুধু ডকুমেন্টের নির্দিষ্ট ফিল্ড ফেচ করতে চাইলে, আপনি HTTP HEAD রিকুয়েস্ট ব্যবহার করতে পারেন। উদাহরণ:
HEAD /db_name/document_id
এটি ডকুমেন্টের মেটাডেটা প্রদান করবে, কিন্তু ডকুমেন্টের পুরো কনটেন্ট নয়।
CouchDB HTTP API-তে If-None-Match বা If-Match হেডার ব্যবহার করে শর্তযুক্ত রিড করা সম্ভব। উদাহরণস্বরূপ:
GET /db_name/document_id HTTP/1.1
If-None-Match: "etag_value"
এটি শুধুমাত্র তখনই ডকুমেন্ট রিটার্ন করবে যদি etag_value মেলে না।
CouchDB তে ডকুমেন্ট রিড/ফেচ করা একটি সহজ এবং কার্যকর প্রক্রিয়া, যা HTTP API এর মাধ্যমে দ্রুত এবং দক্ষভাবে ডেটা অ্যাক্সেস করতে সহায়ক। ডকুমেন্টের _id ব্যবহার করে দ্রুত রিড অপারেশন সম্ভব, এবং এর মধ্যে থাকা MapReduce Views এবং অন্যান্য কুয়েরি পদ্ধতিগুলি ডেটা অ্যাক্সেস আরও শক্তিশালী করে তোলে।
common.read_more